/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package collections.dao;

import collections.factory.ListasFactory;
import collections.mapeamento.TaUsuarioRequisicao;
import collections.mapeamento.TbDocDigitalizado;
import collections.mapeamento.TbDocumentoIdentificacao;
import collections.mapeamento.TbEndereco;
import collections.mapeamento.TbNomeAnterior;
import collections.mapeamento.TbPassaporteDiplomatico;
import collections.mapeamento.TbPessoa;
import collections.mb.DadosRequisicaoMB;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 *
 * @author ra20859545
 */
public class AvaliarReqDAO extends ListasFactory {
    
    private static List<TaUsuarioRequisicao> listaTemp;
    private static List<TaUsuarioRequisicao> reqFiltrada;
    private static TaUsuarioRequisicao ta; 
    private static List<TbDocumentoIdentificacao> tbDoc;
    private static TbEndereco endereco;
    private static TbNomeAnterior nomeAnt;
    private static TbPassaporteDiplomatico docAnt;
    private static List<TbDocDigitalizado> tbDocDigital;
    private TaUsuarioRequisicao ta2;
    private List<TbPessoa> depedentes;
    
    public List<TaUsuarioRequisicao> buscaRequisicao(){
        listaTemp = new ArrayList<TaUsuarioRequisicao>();
        
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
                if (taUsuarioRequisicao.getStsRequisicao().contains("Pendente")){
                    getListaTemp().add(taUsuarioRequisicao);
                }
            }
        return getListaTemp();
    }
    
    public List<TbPessoa> buscaDependentes(int codPessoa){
        depedentes = new ArrayList<TbPessoa>();
        for (Iterator<TbPessoa> it = listaPessoa.iterator(); it.hasNext();) {
            TbPessoa tbPessoa = it.next();
                if (tbPessoa.getCodPessoa() == codPessoa){
                    getDepedentes().add(tbPessoa);
                }
            }
        return getDepedentes();
        
    }
    
    public void dadosRequisicao(String nome){
        ta = new TaUsuarioRequisicao();
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
                if (taUsuarioRequisicao.getTbRequisicao().getTbPessoa().getNmePessoa().contains(nome)){
                    ta = taUsuarioRequisicao;
                    DadosRequisicaoMB reqMB = new DadosRequisicaoMB();
                    reqMB.setTa(ta);
                }
        }
    }
    
    public void docDigitalPessoa(String nome){
        tbDocDigital = new ArrayList<TbDocDigitalizado>();
        for (Iterator<TbDocDigitalizado> it = listaDocDigitalizado.iterator(); it.hasNext();) {
            TbDocDigitalizado tbDocDigitalizado = it.next();
                if (tbDocDigitalizado.getTbPessoa().getNmePessoa().contains(nome)){
                    tbDocDigital.add(tbDocDigitalizado);
                }
        }
    }
    
    public void dadosEndereco(String nome){
        endereco = new TbEndereco();
        for (Iterator<TbEndereco> it = listaEndereco.iterator(); it.hasNext();) {
            TbEndereco tbEndereco = it.next();
                if (tbEndereco.getTbPessoa().getNmePessoa().contains(nome)){
                    endereco = tbEndereco;
                }
        }
    }
    
    public List<TbDocumentoIdentificacao> dadosDocumentosIdentificacao(String nome){
        tbDoc = new ArrayList<TbDocumentoIdentificacao>();
        for (Iterator<TbDocumentoIdentificacao> it = listaDocumentoIdentificacao.iterator(); it.hasNext();) {
            TbDocumentoIdentificacao tbDocumentoIdentificacao = it.next();
                if (tbDocumentoIdentificacao.getTbPessoa().getNmePessoa().contains(nome)){
                    getTbDoc().add(tbDocumentoIdentificacao);
                }
        }
        return getTbDoc();
    }
    
    public void buscaNomeAnt(String nome){
        nomeAnt = new TbNomeAnterior();
        for (Iterator<TbNomeAnterior> it = listaNomeAnterior.iterator(); it.hasNext();) {
            TbNomeAnterior tbNomeAnterior = it.next();
                if (tbNomeAnterior.getTbPessoa().getNmePessoa().contains(nome)){
                    nomeAnt = tbNomeAnterior;
                }
        }
    }
    
    public void buscaDocAnterior(String nome){
        docAnt = new TbPassaporteDiplomatico();
        for (Iterator<TbPassaporteDiplomatico> it = listaPassaporteDiplomatico.iterator(); it.hasNext();) {
            TbPassaporteDiplomatico tbPassaporteDiplomatico = it.next();
                if (tbPassaporteDiplomatico.getTbPessoa().getNmePessoa().contains(nome)){
                    docAnt = tbPassaporteDiplomatico;
                }
        }
    }
    
    public List<TaUsuarioRequisicao> requisicoesPorData(Date dataIni, Date dataFim) {
        reqFiltrada = new ArrayList<TaUsuarioRequisicao>();
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
                if (taUsuarioRequisicao.getTbRequisicao().getDtaEntradaRequisicao().after(dataIni) && taUsuarioRequisicao.getTbRequisicao().getDtaEntradaRequisicao().before(dataFim)){
                    reqFiltrada.add(taUsuarioRequisicao);
                }
        }
        return reqFiltrada;
    }
    
    
     /**
     * @return the listaTemp
     */
    public static List<TaUsuarioRequisicao> getListaTemp() {
        return listaTemp;
    }

    /**
     * @param aListaTemp the listaTemp to set
     */
    public static void setListaTemp(List<TaUsuarioRequisicao> aListaTemp) {
        listaTemp = aListaTemp;
    }

    public static TaUsuarioRequisicao getTa() {
        return ta;
    }

    public static void setTa(TaUsuarioRequisicao ta) {
        AvaliarReqDAO.ta = ta;
    }

    public static List<TbDocumentoIdentificacao> getTbDoc() {
        return tbDoc;
    }

    public static void setTbDoc(List<TbDocumentoIdentificacao> tbDoc) {
        AvaliarReqDAO.tbDoc = tbDoc;
    }

    public static TbEndereco getEndereco() {
        return endereco;
    }

    public static void setEndereco(TbEndereco endereco) {
        AvaliarReqDAO.endereco = endereco;
    }

    public static TbNomeAnterior getNomeAnt() {
        return nomeAnt;
    }

    public static void setNomeAnt(TbNomeAnterior nomeAnt) {
        AvaliarReqDAO.nomeAnt = nomeAnt;
    }

    public static TbPassaporteDiplomatico getDocAnt() {
        return docAnt;
    }

    public static void setDocAnt(TbPassaporteDiplomatico docAnt) {
        AvaliarReqDAO.docAnt = docAnt;
    }

    public static List<TbDocDigitalizado> getTbDocDigital() {
        return tbDocDigital;
    }

    public static void setTbDocDigital(List<TbDocDigitalizado> tbDocDigital) {
        AvaliarReqDAO.tbDocDigital = tbDocDigital;
    }

    public TaUsuarioRequisicao getTa2() {
        return ta2;
    }

    public void setTa2(TaUsuarioRequisicao ta2) {
        this.ta2 = ta2;
    }

    public List<TbPessoa> getDepedentes() {
        return depedentes;
    }

    public void setDepedentes(List<TbPessoa> depedentes) {
        this.depedentes = depedentes;
    }



    
}
